Java Technologies Varargs এর মাধ্যমে Generic Method Creation গাইড ও নোট

392

জাভায় Varargs (Variable Arguments) ব্যবহার করে জেনেরিক মেথড তৈরি করা সম্ভব। এটি ডেভেলপারদের একই মেথডে ভিন্ন ভিন্ন সংখ্যক আর্গুমেন্ট পাস করার সুবিধা দেয়। যখন জেনেরিক্সের সাথে Varargs ব্যবহার করা হয়, তখন এটি টাইপ সেফ এবং ফ্লেক্সিবল পদ্ধতিতে কাজ করে।


Varargs কি?

Varargs মেথডে একটি ভেরিয়েবল সংখ্যক আর্গুমেন্ট পাস করার অনুমতি দেয়। এটি ... চিহ্ন ব্যবহার করে ডিক্লেয়ার করা হয়:

public void methodName(Type... varargs) {
    // Method implementation
}

Generic Method এবং Varargs এর Syntax

public static <T> void methodName(T... args) {
    // Method implementation
}
  • <T>: জেনেরিক টাইপ প্যারামিটার যা মেথডে ব্যবহৃত হয়।
  • T... args: Varargs প্যারামিটার, যা মেথডে একটি ভেরিয়েবল সংখ্যক আর্গুমেন্ট গ্রহণ করে।

Generic Varargs Method এর উদাহরণ

উদাহরণ ১: মেথডে ডেটা প্রিন্ট করা

public class GenericVarargsExample {
    public static <T> void printElements(T... elements) {
        for (T element : elements) {
            System.out.println(element);
        }
    }

    public static void main(String[] args) {
        printElements(1, 2, 3, 4); // Integer values
        printElements("Java", "Generics", "Varargs"); // String values
    }
}

আউটপুট:

1
2
3
4
Java
Generics
Varargs

উদাহরণ ২: সর্বোচ্চ উপাদান খুঁজে বের করা

public class GenericMaxFinder {
    public static <T extends Comparable<T>> T findMax(T... elements) {
        if (elements == null || elements.length == 0) {
            throw new IllegalArgumentException("No elements provided");
        }
        T max = elements[0];
        for (T element : elements) {
            if (element.compareTo(max) > 0) {
                max = element;
            }
        }
        return max;
    }

    public static void main(String[] args) {
        System.out.println(findMax(1, 5, 3, 9, 2)); // Integer values
        System.out.println(findMax("Apple", "Orange", "Banana")); // String values
    }
}

আউটপুট:

9
Orange

Varargs এবং টাইপ সেফটি

Varargs এর মাধ্যমে জেনেরিক্স ব্যবহারে টাইপ সেফটি নিশ্চিত করতে জাভা একটি কম্পাইল-টাইম সতর্কবার্তা দেয়। উদাহরণস্বরূপ:

public static <T> void addToList(List<T> list, T... elements) {
    for (T element : elements) {
        list.add(element);
    }
}

সতর্কবার্তা:

Note: Generic array creation for varargs parameter is unsafe

সতর্কবার্তা এড়ানোর জন্য @SafeVarargs

যখন জেনেরিক Varargs মেথড টাইপ সেফ, তখন @SafeVarargs অ্যানোটেশন ব্যবহার করা যেতে পারে। এটি কম্পাইল-টাইম সতর্কবার্তা দূর করে।

import java.util.List;

public class SafeVarargsExample {
    @SafeVarargs
    public static <T> void addToList(List<T> list, T... elements) {
        for (T element : elements) {
            list.add(element);
        }
    }

    public static void main(String[] args) {
        List<String> stringList = new ArrayList<>();
        addToList(stringList, "Java", "Generics", "Varargs");
        System.out.println(stringList);
    }
}

আউটপুট:

[Java, Generics, Varargs]

Varargs এর সুবিধা

  1. ফ্লেক্সিবিলিটি: একাধিক আর্গুমেন্ট সহজে পাস করা যায়।
  2. কোড সিম্পলিসিটি: একই মেথড বিভিন্ন সংখ্যক ইনপুট গ্রহণ করতে পারে।
  3. টাইপ সেফটি: জেনেরিক্সের মাধ্যমে টাইপ সেফ কোড নিশ্চিত করা যায়।

সতর্কতা

  1. জেনেরিক্স এবং Varargs একত্রে ব্যবহার করলে জাভার Type Erasure এর কারণে কিছু সীমাবদ্ধতা থাকে।
  2. জেনেরিক Varargs এর ক্ষেত্রে @SafeVarargs ব্যবহারে সতর্ক থাকা উচিত।

Varargs এর মাধ্যমে Generic Method তৈরি করা জাভার একটি শক্তিশালী বৈশিষ্ট্য, যা ফ্লেক্সিবল এবং টাইপ সেফ কোড লিখতে সাহায্য করে। তবে, Type Erasure এর সীমাবদ্ধতা এবং টাইপ সেফটি নিশ্চিত করতে ডেভেলপারদের সতর্ক থাকা উচিত।

Content added By
Promotion

Are you sure to start over?

Loading...